package com.ys.day28.socket上传下载文件;

import java.io.*;
import java.net.Socket;

/**
 * 描述: 上传文件客户端
 *
 * @author CodeYang
 * @version 2021/1/9 20:04
 */
public class UpLoadClient {

    public static void main(String[] args) {

        try(
                Socket socket = new Socket("localhost",5333);
                // 读 将文件读到输入流 发送给客户端
                BufferedInputStream bis = new BufferedInputStream(new FileInputStream("F:\\STX_WorkSpace\\OwnCode\\JAVASE\\day_28\\src\\com\\ys\\day28\\socket上传下载文件\\TCPSocket.java"));
                //写
                OutputStream os = socket.getOutputStream();
                //数据流写
                DataOutputStream dos = new DataOutputStream(os);
             )
         {
             // 1; 将文件后缀名发送给服务器
             dos.writeUTF(".java");
             //2 .读取文件信息,将文件 写入到 out中
             int len = 0;
             byte[] data = new byte[1024];
             while ((len = bis.read(data)) != -1){
                 dos.write(data,0,len);
             }
             dos.flush();
             // 向服务器发送结束标志, 根据流对象的不同,发送的是不同的标志, 字符流 发null 字节流 发 -1
             // 关闭客户端的 输出流,并发送结束标志
             socket.shutdownOutput();

             // 3; 获取 server 返回的msg
             BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             String msg = br.readLine();

             System.out.println("reslut:"+msg);


         }catch (Exception e){
            e.printStackTrace();
        }


    }
}
